import datetime
import time
# 导入calendar日历模块
import calendar
from calendar import *
# 底下一堆都是课程表的代码
# 当前日期
now = datetime.date.isoformat(datetime.date.today())
# 周几
today = datetime.datetime.now().weekday() + 1
# 整合一周所有课程
data1 = {'day': [1],
         '周几': ['星期一'],
         '节': ['8-10节'],
         '课程': ['创业基础（实践）'],
         '地点': ['1-401'],
         '老师': ['高进']
         }
data2 = {'day': [2],
         '周几': ['星期二'],
         '节': ["8-9节"],
         '课程': ['H5互动技术与应用'],
         '地点': ['3实-308'],
         '老师': ['游鸽']
         }
data3 = {'day': [2],
         '周几': ['星期二'],
         '节': ["10-11节"],
         '课程': ['大学英语（三）B1班'],
         '地点': ['9-202'],
         '老师': ['洪明']
         }
data4 = {'day': [3],
         '周几': ['星期三'],
         '节': ["1-2节"],
         '课程': ['户外体育游戏'],
         '地点': ['西区体育馆东面'],
         '老师': ['赵培刚']
         }
data5 = {'day': [4],
         '周几': ['星期四'],
         '节': ["1-2节"],
         '课程': ['大学英语（三）B1班'],
         '地点': ['9-202'],
         '老师': ['洪明']
         }
data6 = {'day': [4],
         '周几': ['星期四'],
         '节': ["3-5节"],
         '课程': ['Python语言'],
         '地点': ['新综合楼612'],
         '老师': ['许智超']
         }
data7 = {'day': [4],
         '周几': ['星期四'],
         '节': ["8-9节"],
         '课程': ['广告文案写作'],
         '地点': ['1-303'],
         '老师': ['罗希']
         }
data8 = {'day': [4],
         '周几': ['星期四'],
         '节': ["12-14节"],
         '课程': ['毛概'],
         '地点': ['9-201'],
         '老师': ['张锦标']
         }
data9 = {'day': [5],
         '周几': ['星期五'],
         '节': ["1-2节"],
         '课程': ['illustrator软件应用'],
         '地点': ['新综合楼612'],
         '老师': ['阚凤霞']
         }
data10 = {'day': [5],
          '周几': ['星期五'],
          '节': ["4-5节"],
          '课程': ['毛概（实践）'],
          '地点': ['7-402'],
          '老师': ['杨益孜']
          }
data = [data1, data2, data3, data4, data5, data6, data7, data8, data9, data10]

# 用户输入
user_data = ["zhiyu","yujie"]
password_data = ["0","1"]
user_data_vip = ["zhiyu"]
tuichu_data = ['退出']
cxjr_data = ['今日']
cxzdr_data = ['指定']
# 拥有的初始登录次数
count = 3
# 输入循环语句
while True:
    count -= 1
    # 用户输入数据
    username = input("请输入你的账号:")
    inpassword = input("请输入你的密码:")
    # 先判断账号是否正确
    if username in user_data:
        # 是否为高贵货色vip
        if username in user_data_vip:
            # 我自己也不懂这块
            index = user_data_vip.index(username)
            password = password_data[index]
            if inpassword == password:
                print("欢迎高贵货色%s登录系统使用~"%username)
                count = 10
                while True:
                    shuru = input("查询今日课程填'今日'，查询指定日期课程填'指定',退出填’退出‘:")
                    if shuru in tuichu_data:
                        print("退出")
                        break
                    elif shuru in cxjr_data:
                        if count == 0:
                            print("您的查看机会已耗尽。")
                            break
                        else:
                            count -= 1
                            print("您是高级货色")
                            print("您还有", count, "次查看机会")
                            print('今天是' + now)
                            for key in range(len(data)):  # len()方法：返回对象（字符、列表、元组等）长度或项目个数
                                if today in data[key]["day"]:
                                    print('今天是' + str(data[key]['周几']))
                                    print('上课时间：' + str(data[key]['节']) +
                                          '\n课程名称：' + str(data[key]['课程']) +
                                          '\n课程地点：' + str(data[key]['地点']) +
                                          '\n任课老师：' + str(data[key]['老师']))
                                else:
                                    if today in [6,7]:
                                        week = time.strftime("%A")
                                        if week == "Saturday":
                                            print('星期六来啦!')
                                        else:
                                            print('星期天来啦！')
                                        print("今天没有课惹，本人真的是很得意嘻嘻。\n可以美美睡大觉~")
                                        break
                    else:
                        if shuru in cxzdr_data:
                            if count == 0:
                                print("您的查看机会已耗尽。")
                                break
                            else:
                                count -= 1
                                print("您是高级货色")
                                print("您还有", count, "次查看机会")
                                print('请输入您需要查询当日课程的具体日期：')

                                # 目的：输入指定日期查询课程
                                # 参考网站教程：https://www.py.cn/faq/python/18200.html
                                y = input('请输入年份：')
                                m = input('请输入月份：')
                                d = input('请输入日：')
                                lis = ['星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期日', ]
                                dic = dict(enumerate(lis))  # enumerate()方法：为lis中的星期x标上序号位置（0、1、2...）
                                if y.isdigit() and m.isdigit() and d.isdigit() and 1000<=int(y)<=9999 and 1<=int(
                                        m)<=12 and 1<=int(d)<=31 :  # isdigit()：方法检测字符串是否只由数字组成
                                    w = weekday(int(y), int(m), int(d))

                                    print('欢迎来到'+y+'年'+m+'月'+d+'日！')
                                    for key in range(len(data)):  # len()方法：返回对象（字符、列表、元组等）长度或项目个数
                                        if dic[w] in data[key]["周几"]:
                                            print('这一天是' + str(data[key]['周几']))
                                            print('上课时间：' + str(data[key]['节']) +
                                                  '\n课程名称：' + str(data[key]['课程']) +
                                                  '\n课程地点：' + str(data[key]['地点']) +
                                                  '\n任课老师：' + str(data[key]['老师']))
                                        else:
                                            if dic[w] in ['星期六', '星期天']:
                                                week = time.strftime("%A")
                                                if week == "Saturday":
                                                    print('星期六来啦!')
                                                else:
                                                    print('星期天来啦！')
                                                print("今天没有课惹，本人真的是很得意嘻嘻。\n可以美美睡大觉~")
                                                break
                                else:
                                    print('怎么连日期都能打错= =自己把蠢事做绝本人也帮不了你！')

            # 以下是高级货色密码错误情况
            else:
                if count == 0:
                    print("你都输入三次了，一次都不对？！愚钝如鸡！\n要不是看你是尊贵vip早就骂你了！五分钟之后再来吧！")
                    break
                else:
                    print("你输入的密码不正确，请重新输入，你还有",count,"次机会！")
        else:
            # 哦哦，原来是低级货色
            if username in user_data:
                index = user_data.index(username)
                password = password_data[index]
                if inpassword == password:
                    print("欢迎低级货色%s登录系统使用~" % username)
                    count = 5
                    while True:
                        shuru = input("查询今日课程填'今日'，查询指定日期课程填'指定',退出填’退出‘:")
                        if shuru in tuichu_data:
                            print("退出")
                            break
                        elif shuru in cxjr_data:
                            if count == 0:
                                print("您的查看机会已耗尽。")
                                break
                            else:
                                count -= 1
                                print("原来是低级货色= =")
                                print("您还有", count, "次查看机会")
                                print('今天是' + now)
                                for key in range(len(data)):  # len()方法：返回对象（字符、列表、元组等）长度或项目个数
                                    if today in data[key]["day"]:
                                        print('今天是' + str(data[key]['周几']))
                                        print('上课时间：' + str(data[key]['节']) +
                                              '\n课程名称：' + str(data[key]['课程']) +
                                              '\n课程地点：' + str(data[key]['地点']) +
                                              '\n任课老师：' + str(data[key]['老师']))
                                    else:
                                        if today in [6, 7]:
                                            week = time.strftime("%A")
                                            if week == "Saturday":
                                                print('星期六来啦!')
                                            else:
                                                print('星期天来啦！')
                                            print("今天没有课惹，本人真的是很得意嘻嘻。\n可以美美睡大觉~")
                                            break
                        else:
                            if shuru in cxzdr_data:
                                if count == 0:
                                    print("您的查看机会已耗尽。")
                                    break
                                else:
                                    count -= 1
                                    print("原来是低级货色= =")
                                    print("您还有", count, "次查看机会")
                                    print('请输入您需要查询当日课程的具体日期：')

                                    # 目的：输入指定日期查询课程
                                    # 参考网站教程：https://www.py.cn/faq/python/18200.html
                                    y = input('请输入年份：')
                                    m = input('请输入月份：')
                                    d = input('请输入日：')
                                    lis = ['星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期日', ]
                                    dic = dict(enumerate(lis))  # enumerate()方法：为lis中的星期x标上序号位置（0、1、2...）
                                    if y.isdigit() and m.isdigit() and d.isdigit() and 1000 <= int(
                                            y) <= 9999 and 1 <= int(
                                            m) <= 12 and 1 <= int(d) <= 31:  # isdigit()：方法检测字符串是否只由数字组成
                                        w = weekday(int(y), int(m), int(d))

                                        print('欢迎来到'+y+'年'+m+'月'+d+'日！')
                                        for key in range(len(data)):  # len()方法：返回对象（字符、列表、元组等）长度或项目个数
                                            if dic[w] in data[key]["周几"]:
                                                print('这一天是' + str(data[key]['周几']))
                                                print('上课时间：' + str(data[key]['节']) +
                                                      '\n课程名称：' + str(data[key]['课程']) +
                                                      '\n课程地点：' + str(data[key]['地点']) +
                                                      '\n任课老师：' + str(data[key]['老师']))
                                            else:
                                                if dic[w] in ['星期六', '星期天']:
                                                    week = time.strftime("%A")
                                                    if week == "Saturday":
                                                        print('星期六来啦!')
                                                    else:
                                                        print('星期天来啦！')
                                                    print("今天没有课惹，本人真的是很得意嘻嘻。\n可以美美睡大觉~")
                                                    break
                                    else:
                                        print('怎么连日期都能打错= =自己把蠢事做绝本人也帮不了你！')
                # 低级货色密码错误情况
                else:
                    if count == 0:
                        print("你都输入三次了，一次都不对？！愚钝如鸡！重开吧！")
                        break
                    else:
                        print("你输入的密码不正确，请重新输入，你还有", count, "次机会！")

            else:
                if count == 0:
                    print("你都输入三次了，一次都不对？！愚钝如鸡！重开吧！")
                    break
                else:
                    print("你输入的密码不正确，请重新输入，你还有",count,"次机会！")
    else:
        print("用户名错误")


